/*
 * @Description:
 * @Version:
 * @Author: Troubadour
 * @Date: 2022-08-13 19:20:07
 * @LastEditors: Troubadour
 * @LastEditTime: 2022-08-14 21:00:50
 */

#ifndef  __MYIIC_H__
#define  __MYIIC_H__

#include "main.h"

#define  CPU_FREQUENCY_MHZ      72

#define  MYIIC_SCL_PIN      IIC_SCL_Pin
#define  MYIIC_SCL_PORT     IIC_SCL_GPIO_Port
#define  MYIIC_SDA_PIN      IIC_SDA_Pin
#define  MYIIC_SDA_PORT     IIC_SDA_GPIO_Port

#define  SDA_Dout_LOW()             HAL_GPIO_WritePin(MYIIC_SDA_PORT, MYIIC_SDA_PIN, GPIO_PIN_RESET)
#define  SDA_Dout_HIGH()            HAL_GPIO_WritePin(MYIIC_SDA_PORT, MYIIC_SDA_PIN, GPIO_PIN_SET)
#define  SDA_Data_IN()              HAL_GPIO_ReadPin(MYIIC_SDA_PORT, MYIIC_SDA_PIN)
#define  SCL_Dout_LOW()             HAL_GPIO_WritePin(MYIIC_SCL_PORT, MYIIC_SCL_PIN, GPIO_PIN_RESET)
#define  SCL_Dout_HIGH()            HAL_GPIO_WritePin(MYIIC_SCL_PORT, MYIIC_SCL_PIN, GPIO_PIN_SET)
#define  SCL_Data_IN()              HAL_GPIO_ReadPin(MYIIC_SCL_PORT, MYIIC_SCL_PIN)
#define  SDA_Write(XX)              HAL_GPIO_WritePin(MYIIC_SDA_PORT, MYIIC_SDA_PIN, ((XX) ? GPIO_PIN_SET : GPIO_PIN_RESET))
#define  Delay_us(xx)               delay_xus(xx)


void IIC_Init(void);
void IIC_Start(void);
void IIC_Stop(void);
void IIC_NAck(void);
void IIC_Ack(void);
HAL_StatusTypeDef IIC_Wait_Ack(void);
void IIC_Send_Byte(uint8_t txd);
uint8_t IIC_Read_Byte(uint8_t ack);



#endif  /* __MYIIC_H__ */

